package com.thinkgem.jeesite.modules.KDniao.unit;

import java.util.List;

public class CachelistUtils<T> {
    /**
     * 获得缓存集合
     * 
     * @param key
     * @return
     */
    public List<T> GetChcheList(String key) {
        @SuppressWarnings("unchecked")
        List<T> list = (List<T>) CacheUtils.get(key);
        return list;
    }

    /**
     * 获得缓存bean
     * 
     * @param key
     * @return
     */
    public T getChchebean(String key) {
        @SuppressWarnings("unchecked")
        T t = (T) CacheUtils.get(key);
        return t;
    }

    /**
     * 新建或者修改数据同时修改缓存数据 javabean中必须有id属性，并且不为空 。必须满足javabean要求
     * 
     * @param key
     * @param bean
     *            新建或者修改的实体对象。必须满足javabean
     */
    public void updateChche(String key, T bean) {
        BeanMapper<T> beanMapper = new BeanMapper<T>();
        List<T> list = GetChcheList(key);
        if (list != null && list.size() > 0) {
            boolean flag = true;
            for (int i = 0; i < list.size(); i++) {
                T t = list.get(i);
                if (beanMapper.jums(t, bean)) {
                    list.remove(i);
                    list.add(i, bean);
                    flag = false;
                    break;
                }
            }
            if (flag) {
                list.add(bean);
            }
            CacheUtils.remove(key);
            CacheUtils.put(key, list);
        }
    }
}
